<?php

// verificar se o IP que está tentando acessar a página não está em nossa blocklist
 $ipsbloqueados = array( "10.0.0.1" );
 foreach ( $ipsbloqueados as $ip ) {
     if ( $ip == $_SERVER[ 'REMOTE_ADDR' ] ) {
         // redireciona o usuário para a página de acesso negado
         header( "Location: /cursophp/app/negado.php" );
         exit();
     }
 }
// área de includes obrigatórios
 require_once("libs/funcoes.php");
 require_once("application.php");

// previne o cache nas página
 header( "Expires: Mon, 21 Out 1999 00:00:00 GMT" );
 header( "Cacho-control: no-cache" );
 header( "Pragma: no-cache" );

// variável m = módulo que será acessado
 $modulo = (isset( $_GET[ 'm' ] )) ? tStr( $_GET[ 'm' ] ) : 'inicial';

// Controlar o front-end
// página inicial, abrir um post ou página de contato

 switch ( $modulo ) {
     case "admin" :
         $app = new App();
         // verifica se está logado
         session_start();
        
           if ( $_SESSION[ "visaousuario" ] === "1" ) {
             $comp   = (isset( $_GET[ 'c' ] )) ? tStr( $_GET[ 'c' ] ) : null;
             $action = (isset( $_GET[ 'a' ] )) ? tStr( $_GET[ 'a' ] ) : null;
             
             switch ( $comp ) {
                    case "usuario" :
                    include("app/controller/usuario.class.php");

                     $usuario = new Usuario();
                     if ( $action != null ) {
                         $usuario->$action( $app );
                     } else {
                         $usuario->listarUsuarios( $app );
                     }
                    case "funcao" :
                    include("app/controller/funcao.class.php");

                     $funcao = new Funcao();
                     if ( $action != null ) {
                         $funcao->$action( $app );
                     } else {
                         $funcao->listarFuncao( $app );
                     }

                     break;
                 
                 default :
                     //renderizaAdminInicial( $app );
                     break;
             }
         }

         break;
     case "doLogin":
         $app     = new App();
         $admin   = $app->loadModel( "Admin" );
         $usuario = tStr( $_POST[ "usuario" ] );
         $senha   = md5( tStr( $_POST[ "senha" ] ) );

         $obj = $admin->getUsuarioLoginSenha( $app->conexao, $usuario, $senha );
            
         
         if ($obj->visaousuario_visaousuarioid === '1' ) {
             // efetuou login
             session_start();
             $_SESSION[ "usuarioid" ]     = $obj->usuarioid;
             $_SESSION[ "usuarionome" ]   = $obj->usuarionome;
             $_SESSION[ "usuariologin" ]  = $obj->usuariologin;
             $_SESSION[ "visaousuario" ] = $obj->visaousuario_visaousuarioid;
             renderizaInicialAdm( $app );
         }
         elseif ( $obj->visaousuario_visaousuarioid === '2' ) {
             session_start();
             $_SESSION[ "usuarioid" ]     = $obj->usuarioid;
             $_SESSION[ "usuarionome" ]   = $obj->usuarionome;
             $_SESSION[ "usuariologin" ]  = $obj->usuariologin;
             $_SESSION[ "visaousuario" ] = $obj->visaousuario_visaousuarioid;
             renderizaInicial( $app );
         }
         else {

             // login falhou
             echo "<script>alert('Login ou senha incorreto(s)');</script>";
             renderizaLogin( $app );
         }

         break;
     case "logout" :
         $app = new App();

         session_start();
         session_destroy();

         echo "<script>alert('Usuário desconectado com sucesso!');</script>";
         renderizaLogin( $app );
         break;


     default :
         $app   = new App();
         $admin = $app->loadModel( "Admin" );
         renderizaLogin( $app );
         break;
 }

 function renderizaLogin( $app ) {
     $param = array( "titulo" => $app->site_titulo );
     $app->loadView( "Login", $param );
 }

 function renderizaInicialAdm( $app ) {
     $param = array( "titulo" => $app->site_titulo,
             "pagina" => "inicialadmin" );

     $app->loadView( "Admin", $param );
 }

 function renderizaInicial( $app ) {
     $param = array( "titulo" => $app->site_titulo,
             "pagina" => "inicial" );

     $app->loadView( "Site", $param );
 }
 